package hashmap;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * 给定两个数组 nums1 和 nums2 ，
 * 返回 它们的交集 。输出结果中的
 * 每个元素一定是 唯一 的。我们可以
 * 不考虑输出结果的顺序 。
 */
public class LeetCode_349 {
    public int[] intersection(int[] nums1, int[] nums2) {
        HashMap<Integer, Integer> numCount = new HashMap<>();
        for (int n : nums1) {
            if(!numCount.containsKey(n)){
                numCount.put(n,0);
            }
        }
        for (int n : nums2) {
            if(numCount.containsKey(n)){
                Integer count = numCount.get(n);
                count++;
                numCount.put(n,count);
            }
        }
        ArrayList<Integer> resultList = new ArrayList<>(100);
        numCount.forEach(
                (k,v) -> {
                    if(v != 0){
                        resultList.add(k);
                    }
                }
        );
        int[] result = new int[resultList.size()];
        for (int i = 0; i < resultList.size(); i++) {
            result[i] = resultList.get(i);
        }
        return result;
    }
}
